package test.serverframe.armc.server.manager.service.impl;

import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;
import test.serverframe.armc.server.manager.controller.vo.InvokeRecordPage;
import test.serverframe.armc.server.manager.dao.mapper.InvokeRecordMapper;
import test.serverframe.armc.server.manager.domain.InvokeRecord;

import java.lang.reflect.InvocationTargetException;

/**  
* 
* @author yegui  
* @date 2018年12月11日  
*/
@Service
public class InvokeRecordService extends BaseServiceImpl<InvokeRecord, String> {
	@Autowired
	private InvokeRecordMapper invokeRecordMapper;
	
	/*
	 * 插入数据
	 * @author yegui  
	 * @date 2018年12月11日  
	 * @param invokeRecord
	 * @return int
	 */
	@Override
	public int insert(InvokeRecord invokeRecord) {
		return invokeRecordMapper.insert(invokeRecord);
	}

	@Override
	public int insertSelective(InvokeRecord record) {
		return 0;
	}

	@Override
    public InvokeRecord selectByPrimaryKey(String id) {
		return null;
	}

	@Override
	public int updateByPrimaryKey(InvokeRecord record) {
		return 0;
	}

	/*
	 * 根据invokeId和status=0来更新状态
	 * @author yegui  
	 * @date 2018年12月11日  
	 * @param waitRecord
	 */  
	public void updateByInvokeIdAndStatus(InvokeRecord invokeRecord) {
		// TODO Auto-generated method stub
		
	}

	/*
	 * 根据主键更新调度的状态
	 * @author yegui  
	 * @date 2018年12月11日  
	 * @param waitRecord
	 */

	@Override
	public int updateByPrimaryKeySelective(InvokeRecord invokeRecord) {
		return invokeRecordMapper.updateByPrimaryKeySelective(invokeRecord);
	}

	@Override
    public int deleteByPrimaryKey(String id) {
		return 0;
	}

	public PageInfo<InvokeRecordPage> pageFindToday(int pageNum, int pageSize, Object parameter) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
		return this.pageFind(pageNum, pageSize, parameter);
	}

	@Override
	protected String getMapperName() {
		return InvokeRecordMapper.class.getName();
	}

	@Transactional
    public Integer deleteRecord(String recordId){
	    return invokeRecordMapper.deleteByPrimaryKey(recordId);
    }

}
